/**
 *  iBizSys 5.0 机器人生产代码（不要直接修改当前代码）
 *  http://www.ibizsys.net
 */
package com.sa.litetwo.app.srv.wf.ctrlmodel;


import java.util.ArrayList;
import java.util.List;
import net.ibizsys.paas.util.StringHelper;
import net.ibizsys.paas.web.AjaxActionResult;
import net.ibizsys.paas.web.WebContext;
import net.ibizsys.paas.util.GlobalContext;
import net.ibizsys.paas.core.IDEDataSetCond;
import net.ibizsys.paas.core.DEDataSetCond;
import net.ibizsys.paas.core.DEDataSetFetchContext;
import net.ibizsys.paas.db.DBFetchResult;
import net.ibizsys.paas.web.WebContext;
import net.ibizsys.paas.util.DataTypeHelper;
import net.ibizsys.paas.data.IDataObject;
import net.ibizsys.paas.datamodel.DataItemModel;
import net.ibizsys.paas.datamodel.DataItemParamModel;
import net.ibizsys.paas.entity.EntityFieldError;
import net.ibizsys.paas.entity.EntityError;
import net.ibizsys.paas.demodel.IDataEntityModel;
import net.ibizsys.paas.demodel.DEModelGlobal;

import net.ibizsys.paas.control.form.FormError;
import net.ibizsys.paas.control.form.IFormItem;
import net.ibizsys.paas.control.form.FormItemError;
import net.ibizsys.paas.ctrlmodel.EditFormItemModel;
import net.ibizsys.paas.data.IDataObject;
import net.ibizsys.paas.entity.EntityError;
import net.ibizsys.paas.entity.IEntity;
import net.ibizsys.paas.service.IService;

/**
 * 实体[工作流实例]编辑表单[form]部件模型
 */
public class WFInstanceMainEditFormModel extends net.ibizsys.paas.ctrlmodel.EditFormModelBase{
   
    public WFInstanceMainEditFormModel()  {
        super();
        this.setName("form");      
    }

      private net.ibizsys.psrt.srv.wf.demodel.WFInstanceDEModel wFInstanceDEModel;
     protected  net.ibizsys.psrt.srv.wf.demodel.WFInstanceDEModel getWFInstanceDEModel() {
            if(this.wFInstanceDEModel==null){
                try
                {
                     this.wFInstanceDEModel = (net.ibizsys.psrt.srv.wf.demodel.WFInstanceDEModel)DEModelGlobal.getDEModel("net.ibizsys.psrt.srv.wf.demodel.WFInstanceDEModel");
                }
                catch(Exception ex)
                {
                }
            }
           return this.wFInstanceDEModel;
      }

      @Override
      public IDataEntityModel getDEModel() {
          return this.getWFInstanceDEModel();
      }

    /**
     * 准备表单项模型
     * @throws Exception
     */
    protected void prepareFormItems()throws Exception
    {
    	super.prepareFormItems();
    	IFormItem iFormItem = null;
        // srfupdatedate 
		iFormItem = this.createFormItem("srfupdatedate");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("srfupdatedate");
			formItem.setDEFName("UPDATEDATE");
			formItem.setCaption("更新时间");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("srfupdatedate");
	        dataItem.setDataType(5);
	        dataItem.setFormat("%1$s");
	        //注册参数
	        DataItemParamModel dataItemParam0 = new DataItemParamModel();
	        dataItemParam0.setName("UPDATEDATE");
	        dataItemParam0.setFormat("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS");
	        dataItem.addDataItemParam(dataItemParam0);
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // srforikey 
		iFormItem = this.createFormItem("srforikey");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("srforikey");
			formItem.setDEFName("");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("srforikey");
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // srfkey 
		iFormItem = this.createFormItem("srfkey");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("srfkey");
			formItem.setDEFName("WFINSTANCEID");
			formItem.setCaption("工作流实例标识");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("srfkey");
	        dataItem.setDataType(25);
	        dataItem.setFormat("%1$s");
	        //注册参数
	        DataItemParamModel dataItemParam0 = new DataItemParamModel();
	        dataItemParam0.setName("WFINSTANCEID");
	        dataItemParam0.setFormat("%1$s");
	        dataItem.addDataItemParam(dataItemParam0);
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // srfmajortext 
		iFormItem = this.createFormItem("srfmajortext");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("srfmajortext");
			formItem.setDEFName("WFINSTANCENAME");
			formItem.setCaption("工作流实例名称");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("srfmajortext");
	        dataItem.setDataType(25);
	        dataItem.setFormat("%1$s");
	        //注册参数
	        DataItemParamModel dataItemParam0 = new DataItemParamModel();
	        dataItemParam0.setName("WFINSTANCENAME");
	        dataItemParam0.setFormat("%1$s");
	        dataItem.addDataItemParam(dataItemParam0);
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // srftempmode 
		iFormItem = this.createFormItem("srftempmode");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("srftempmode");
			formItem.setDEFName("");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("srftempmode");
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // srfuf 
		iFormItem = this.createFormItem("srfuf");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("srfuf");
			formItem.setDEFName("");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("srfuf");
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // srfdeid 
		iFormItem = this.createFormItem("srfdeid");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("srfdeid");
			formItem.setDEFName("");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("srfdeid");
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // srfsourcekey 
		iFormItem = this.createFormItem("srfsourcekey");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("srfsourcekey");
			formItem.setDEFName("");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("srfsourcekey");
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // wfinstanceid 
		iFormItem = this.createFormItem("wfinstanceid");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("wfinstanceid");
			formItem.setDEFName("WFINSTANCEID");
			formItem.setCaption("工作流实例标识");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("wfinstanceid");
	        dataItem.setDataType(25);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // wfinstancename 
		iFormItem = this.createFormItem("wfinstancename");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("wfinstancename");
			formItem.setDEFName("WFINSTANCENAME");
			formItem.setCaption("工作流实例名称");
			formItem.setAllowEmpty(false);

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("wfinstancename");
	        dataItem.setDataType(25);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // wfworkflowname 
		iFormItem = this.createFormItem("wfworkflowname");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("wfworkflowname");
			formItem.setDEFName("WFWORKFLOWNAME");
			formItem.setEnableCond(0);
			formItem.setCaption("工作流名称");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("wfworkflowname");
	        dataItem.setDataType(25);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // wfversion 
		iFormItem = this.createFormItem("wfversion");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("wfversion");
			formItem.setDEFName("WFVERSION");
			formItem.setCaption("工作流版本");
			formItem.setAllowEmpty(false);

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("wfversion");
	        dataItem.setDataType(9);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // starttime 
		iFormItem = this.createFormItem("starttime");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("starttime");
			formItem.setDEFName("STARTTIME");
			formItem.setCaption("开始时间");
			formItem.setValueTranslator("DATE|YYYY-MM-DD HH:mm:ss");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("starttime");
	        dataItem.setDataType(5);
	        dataItem.setFormat("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // endtime 
		iFormItem = this.createFormItem("endtime");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("endtime");
			formItem.setDEFName("ENDTIME");
			formItem.setCaption("结束时间");
			formItem.setValueTranslator("DATE|YYYY-MM-DD HH:mm:ss");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("endtime");
	        dataItem.setDataType(5);
	        dataItem.setFormat("%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // userdata 
		iFormItem = this.createFormItem("userdata");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("userdata");
			formItem.setDEFName("USERDATA");
			formItem.setEnableCond(0);
			formItem.setCaption("用户数据");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("userdata");
	        dataItem.setDataType(25);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // userdata4 
		iFormItem = this.createFormItem("userdata4");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("userdata4");
			formItem.setDEFName("USERDATA4");
			formItem.setCaption("用户数据4");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("userdata4");
	        dataItem.setDataType(25);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // isclose 
		iFormItem = this.createFormItem("isclose");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("isclose");
			formItem.setDEFName("ISCLOSE");
			formItem.setCodeListId("com.sa.litetwo.srv.codelist.YesNoCodeListModel");
			formItem.setCaption("是否关闭");
			formItem.setOutputCodeListConfig(true);

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("isclose");
	        dataItem.setDataType(9);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // isfinish 
		iFormItem = this.createFormItem("isfinish");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("isfinish");
			formItem.setDEFName("ISFINISH");
			formItem.setCodeListId("com.sa.litetwo.srv.codelist.YesNoCodeListModel");
			formItem.setCaption("是否完成");
			formItem.setOutputCodeListConfig(true);

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("isfinish");
	        dataItem.setDataType(9);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // iserror 
		iFormItem = this.createFormItem("iserror");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("iserror");
			formItem.setDEFName("ISERROR");
			formItem.setCodeListId("com.sa.litetwo.srv.codelist.YesNoCodeListModel");
			formItem.setCaption("是否错误");
			formItem.setOutputCodeListConfig(true);

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("iserror");
	        dataItem.setDataType(9);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // iscancel 
		iFormItem = this.createFormItem("iscancel");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("iscancel");
			formItem.setDEFName("ISCANCEL");
			formItem.setCodeListId("com.sa.litetwo.srv.codelist.YesNoCodeListModel");
			formItem.setCaption("是否取消");
			formItem.setOutputCodeListConfig(true);

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("iscancel");
	        dataItem.setDataType(9);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // cancelreason 
		iFormItem = this.createFormItem("cancelreason");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("cancelreason");
			formItem.setDEFName("CANCELREASON");
			formItem.setCaption("取消原因");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("cancelreason");
	        dataItem.setDataType(21);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // errorinfo 
		iFormItem = this.createFormItem("errorinfo");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("errorinfo");
			formItem.setDEFName("ERRORINFO");
			formItem.setCaption("错误信息");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("errorinfo");
	        dataItem.setDataType(21);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // activestepname 
		iFormItem = this.createFormItem("activestepname");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("activestepname");
			formItem.setDEFName("ACTIVESTEPNAME");
			formItem.setCaption("当前步骤名称");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("activestepname");
	        dataItem.setDataType(25);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        // wfworkflowid 
		iFormItem = this.createFormItem("wfworkflowid");
		if(iFormItem==null)
		{
			EditFormItemModel formItem = new EditFormItemModel();
			formItem.setForm(this);
			formItem.setName("wfworkflowid");
			formItem.setDEFName("WFWORKFLOWID");
			formItem.setCaption("工作流名称");

			//设置数据项参数
			DataItemModel dataItem = new DataItemModel(); 
			dataItem.setName("wfworkflowid");
	        dataItem.setDataType(25);
	        dataItem.setFormat("%1$s");
			formItem.setDataItem(dataItem);
			formItem.init();
			iFormItem = formItem;
		}
		this.registerFormItem(iFormItem);
        	
    }
    
    /**
     * 填充表单值
     * @param iDataObject
     * @param bUpdate
     * @param bIgnoreEmpty
     * @param formError
     * @throws Exception
     */
    @Override
    protected void onFillInputValues(IDataObject iDataObject,boolean bUpdate,boolean bIgnoreEmpty,FormError formError)throws Exception
    {
    	  super.onFillInputValues(iDataObject,bUpdate,bIgnoreEmpty,formError);
          if(formError.hasError())
              return;

 
    }
    @Override
    protected void onTestValueRule(IService iService, IDataObject iDataObject, boolean bUpdate,EntityError entityError) throws Exception
	{
		EntityFieldError entityFieldError = null;
		super.onTestValueRule( iService,  iDataObject,  bUpdate, entityError) ;
	}
}